package com.inspire.ijc.agent.storage;

import com.inspire.ijc.agent.storage.entity.CallMethod;
import com.inspire.ijc.agent.storage.entity.CallThread;
import com.inspire.ijc.agent.utils.QueueToStack;

import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;

/**
 * @author ：inspire
 * @date ：Created in 2023/4/13 13:43
 * @description：
 * @modified By：inspire
 * @version:
 */
public class AllContext {

    public static List<CallThread> CALLTHREADLIST =new CopyOnWriteArrayList<CallThread>();

    public static Map<Long,QueueToStack<CallMethod>> THREADCALL=new HashMap<Long, QueueToStack<CallMethod>>();//<threadId,调用栈>

    public static Map<Long, List<CallMethod>> PRINTLIST =new HashMap<Long, List<CallMethod>>();

    public static int CLASS_ID_AUTO=0;
    public static Set<Integer> CLASS_IDS=new HashSet<Integer>();

    public static int METHOD_ID_AUTO=0;
    public static Map<String,Integer> METHOD_IDS=new HashMap<String, Integer>();//保存所有函数id，出现同一个类的不同类加载器时，多个类加载器的函数使用同一个id
}
